package com.haoran.dwz.handler;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.commons.lang3.StringUtils;

public interface PeriodHandler {
	
	/** 时间格式(yyyy-MM-dd) */
	String DATE_PATTERN = "yyyy-MM-dd";
	
	/** 时间格式(yyyy-MM-dd HH:mm:ss) */
	String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";

	/**
	 * 默认的期间格式
	 */
	String DEFAULT_PERIOD_PATTERN = "yyyy-MM-dd HH:mm:ss - yyyy-MM-dd HH:mm:ss";

	/**
	 * 获取期间
	 */
	String getPeriod();

	default Date getStartDateTime() {
		try {
			String period = getPeriod();
			if (StringUtils.isBlank(period)) {
				return null;
			}
			String startDateTime = period.substring(0, 19);
			if (startDateTime != null) {
				SimpleDateFormat df = new SimpleDateFormat(DATE_TIME_PATTERN);
				return df.parse(startDateTime);
			}
		} catch (ParseException e) {
			return null;
		}
		return null;
	}

	default Date getEndDateTime() {
		try {
			String period = getPeriod();
			if (StringUtils.isBlank(period)) {
				return null;
			}
			String endDateTime = getPeriod().substring(getPeriod().length() - 19, getPeriod().length());
			if (endDateTime != null) {
				SimpleDateFormat df = new SimpleDateFormat(DATE_TIME_PATTERN);
				return df.parse(endDateTime);
			}
		} catch (ParseException e) {
			return null;
		}
		return null;
	}
}
